package com.example.demo.util.differe;

import com.example.demo.domain.model.ParameterAttributeValue;
import com.example.demo.domain.model.ParameterDefinition;
import com.example.demo.domain.model.ParameterMap;
import com.example.demo.domain.model.ParameterValue;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Data
public class ParameterDefinitionContainer {
    private ParameterMap oldParameter;
    private List<Definition<ParameterDefinition>> pdDiff;
    private List<Definition<ParameterValue>> pvDiff;
    private List<Definition<ParameterAttributeValue>> pavDiff;

    /**
     * 根据PD CODE 唯一 判断pav 当前状态
     *
     * @param attributeValues
     */
    public void diffPAV(List<ParameterAttributeValue> attributeValues, String pvCode) {
        Map<String, String> pavMap = oldParameter.findPavCodeMap(pvCode);

        List<Definition<ParameterAttributeValue>> pavDiff = new ArrayList<>();
        for (ParameterAttributeValue attributeValue : attributeValues) {
            Definition<ParameterAttributeValue> d = new Definition<>();
            if (attributeValue.getAttributeCode().equals(pavMap.get(pvCode))) {
                d.setOptType("U");
            } else {
                d.setOptType("C");
            }
            d.setObj(attributeValue);
            pavDiff.add(d);
        }
    }

}
